﻿<?xml version="1.0" encoding="utf-8"?>
<!--
一个collection表示了一个协议的集合，不排除以后利用名字来表示协议定义空间，
collection可以采用include的方式包含其它collection，目前还没有名字空间的概念，因此如果有include的动作注意重名的产生
定义了协议id和对应的数据结构的映射关系，一条协议对应一个网络包裹的数据结构
数据结构按照c++的表示方式，提供各种压缩策略
python脚本解析本文件，自动产生相应的c++代码和python代码，用来实现数据结构的 definition，instantiation，initialization，assignment，encode/decode的自动实现
算法的宗旨，简单，易懂，效率，考虑手机平台也能使用
todo：android平台用的什么语言？java？object C？
-->
<collection name="proto_part1" >
  <includes>
    <include file="head.xml"/>
  </includes>
  
  <typesize>
    <!--从head。xml继承-->
  </typesize>

  <defines>
    <define name="MAX_NAME" value="4">
  </defines>
  <!-- 按照c++的struct规则来填写，要求的特性，1.自动压缩/解压缩字符串，数组，2.提供标志位表示哪几个变量是有效的，
    3.标志位要有开关选择，提供没有标志位，固定长度标志位（byte，word，dword长度），动态标志位（按实际大小来分配）三种配置方案
          控制的粒度选在structs-->
  <structs>
    <struct name="helloworld">
      <member name="hello" type="int"/>
    </struct>
  </structs>

  <protocols>
    <protocol name="SERVER1_2_SERVER2_HELLOWORLD" value="1" struct="helloworld">
  </protocols>
</collection>
